
[dbo].[asi_PurgeInactiveCampaigns]
CREATE PROCEDURE [dbo].[asi_PurgeInactiveCampaigns]
AS
declare @campaignKey uniqueidentifier
declare @appealKey uniqueidentifier
declare @solicitationKey uniqueidentifier
declare @sourceCodeKey uniqueidentifier
declare @campaignCode nvarchar(10)
set ROWCOUNT 1
SELECT @campaignKey = CampaignKey, @campaignCode = LegacyCampaignCode FROM vBoCampaign WHERE CampaignStatusCode = 1
while @@ROWCOUNT > 0
begin
set ROWCOUNT 0
begin tran
SELECT @appealKey = AppealKey FROM vBoAppeal WHERE CampaignKey = @campaignKey
while @@ROWCOUNT > 0
begin
SELECT @solicitationKey = SolicitationKey FROM vBoSolicitation WHERE AppealKey = @appealKey
while @@ROWCOUNT > 0
begin
SELECT @sourceCodeKey = SourceCodeKey FROM vBoSourceCode WHERE SolicitationKey = @solicitationKey
while @@ROWCOUNT > 0
begin
DELETE FROM ListItem WHERE ListKey = @sourceCodeKey
DELETE FROM ListMain WHERE ListKey = @sourceCodeKey
DELETE FROM SolicitationSource WHERE SourceCodeKey = @sourceCodeKey
DELETE FROM SourceCode WHERE SourceCodeKey = @sourceCodeKey
DELETE FROM UniformRegistry WHERE UniformKey = @sourceCodeKey
SELECT @sourceCodeKey = SourceCodeKey FROM vBoSourceCode WHERE SolicitationKey = @solicitationKey
end
DELETE FROM SolicitationMain WHERE SolicitationKey = @solicitationKey
DELETE FROM UniformRegistry WHERE UniformKey = @solicitationKey
SELECT @solicitationKey = SolicitationKey FROM vBoSolicitation WHERE AppealKey = @appealKey
end
DELETE FROM AppealMain WHERE AppealKey = @appealKey
DELETE FROM UniformRegistry WHERE UniformKey = @appealKey
SELECT @appealKey = AppealKey FROM vBoAppeal WHERE CampaignKey = @campaignKey
end
DELETE FROM CampaignMain WHERE CampaignKey = @campaignKey
DELETE FROM UniformRegistry WHERE UniformKey = @campaignKey
DELETE FROM Campaign WHERE CAMPAIGN_CODE = @campaignCode
commit tran
set ROWCOUNT 1
SELECT @campaignKey = CampaignKey, @campaignCode = LegacyCampaignCode FROM vBoCampaign WHERE CampaignStatusCode = 1
end
GO